Intro

This just shows a brief example of how you can start a game and trigger turns to progress.

library(MundusCentrum)

Setup the game

game <- new_game(
  name = "Anno Uno",
  players = list(
    list(
      name = "Big Grizz",
      team = "Space Marines",
      units = system.file("extdata", "unit-templates", "big_grizz.csv", package = "MundusCentrum")
    ),
    list(
      name = "Eric",
      team = "Space Orcs",
      units = system.file("extdata", "unit-templates", "eric.csv", package = "MundusCentrum")
    ),
    list(
      name = "Chris",
      team = "Tyrannids",
      units = system.file("extdata", "unit-templates", "chris.csv", package = "MundusCentrum")
    )
  ),
  points = 2000
)
## All units resolved.

see the starting point

This is the state of the game at the beginning

res <- reconcile_player_orders(game)
## All units resolved.
print(draw_map(res))

knitr::kable(res)
player loc action unit_name unit_type force_org
big_grizz A1 hold Amir Dixon lt_dan troop
big_grizz A1 hold Juliana Wu lt_dan troop
big_grizz A1 hold Mateo Hunt lt_dan troop
big_grizz A1 hold Mila Foster lt_dan troop
big_grizz A1 hold Vanessa Richards lt_dan troop
big_grizz A2 hold Insane Beggar steve_zissou elite
big_grizz A2 hold Ashley Mendez cptn_steve_hiller_usmc troop
big_grizz A3 hold Respected Artist keyser_soze elite
big_grizz A4 hold Olivia Newton-John maverick flyer
big_grizz A5 hold Ariana Grande maverick flyer
big_grizz A6 hold Robert Pirsig Mcdonald mule transport
big_grizz A6 hold Anna Larson cptn_steve_hiller_usmc troop
big_grizz A6 hold Izabella Thomas lt_dan troop
big_grizz A6 hold Jordyn Barnett lt_dan troop
big_grizz A6 hold Maxwell Davis lt_dan troop
eric C1 hold Robert Fisk rambo heavy
eric C1 hold Dominique Lapierre Bryant mule transport
eric C1 hold V S Naipaul May mule transport
eric C1 hold Caleb Rojas lt_dan troop
eric C1 hold Ivan Jordan lt_dan troop
eric C1 hold Quinn Johnston lt_dan troop
eric C2 hold Bing Crosby ricky_bobby fast
eric C2 hold Paul Bettany ricky_bobby fast
eric C3 hold Frank Kafka charlie_kaufman heavy
eric C4 hold Phantom Mercenary steve_zissou elite
eric C4 hold Daft Punk maverick flyer
eric C5 hold Amateur Bandit rocketman elite
eric C5 hold Quiet Wanderer rocketman elite
chris F1 hold Alfred Stonier Flores mule transport
chris F1 hold David Niven Fuentes mule transport
chris F1 hold Vladimir Vapnik Fisher mule transport
chris F1 hold Adrian Walker lt_dan troop
chris F1 hold Everett Marquez lt_dan troop
chris F1 hold Jayden Roman lt_dan troop
chris F1 hold Katelyn Malone lt_dan troop
chris F1 hold Nova Mullins lt_dan troop
chris F1 hold Sadie Mclaughlin lt_dan troop
chris F2 hold Samuel Huntington charlie_kaufman heavy
chris F2 hold Frederick Forsyth Francis mule transport
chris F2 hold Nate Silver Curtis mule transport
chris F2 hold Andrew Holland lt_dan troop
chris F2 hold Giovanni Hammond lt_dan troop
chris F2 hold Jace Ramos lt_dan troop
chris F2 hold Kaleb Stephens lt_dan troop
chris F2 hold Silas Palmer lt_dan troop
chris F2 hold Sophie Mann lt_dan troop
chris F3 hold Ruff Man steve_zissou elite
chris F6 hold Bob Newhart maverick flyer

Turn play

Get a list of unit ID’s to easily make the move_unit() calls below.

moby_units <- read_player_map(game, "big_grizz") %>% pull(unit_name)
eric_units <- read_player_map(game, "eric") %>% pull(unit_name)
chris_units <- read_player_map(game, "chris") %>% pull(unit_name)

TURN 1

Players change their maps (making orders)

move_unit(game, "big_grizz", moby_units[1:5],   "move",  "E2")
move_unit(game, "big_grizz", moby_units[6:7],   "control","A2")
move_unit(game, "big_grizz", moby_units[11:15], "control","A6")
move_unit(game, "eric",      eric_units[1:6],   "move",  "F7")
move_unit(game, "eric",      eric_units[9],     "control","C3")
move_unit(game, "eric",      eric_units[10:11], "control","C3")
move_unit(game, "chris",     chris_units[1:9],  "control","F1")
move_unit(game, "chris",     chris_units[10:18],"move",  "F3")
move_unit(game, "chris",     chris_units[19],   "sneak", "E5")
move_unit(game, "chris",     chris_units[20],   "soar",  "D4")

Reconcile moves.

res <- reconcile_player_orders(game)
## All units resolved.
print(draw_map(res))

knitr::kable(res)
player loc action unit_name unit_type force_org
big_grizz A2 control Insane Beggar steve_zissou elite
big_grizz A2 control Ashley Mendez cptn_steve_hiller_usmc troop
big_grizz A3 hold Respected Artist keyser_soze elite
big_grizz A4 hold Olivia Newton-John maverick flyer
big_grizz A5 hold Ariana Grande maverick flyer
big_grizz A6 control Robert Pirsig Mcdonald mule transport
big_grizz A6 control Anna Larson cptn_steve_hiller_usmc troop
big_grizz A6 control Izabella Thomas lt_dan troop
big_grizz A6 control Jordyn Barnett lt_dan troop
big_grizz A6 control Maxwell Davis lt_dan troop
eric C2 hold Bing Crosby ricky_bobby fast
eric C2 hold Paul Bettany ricky_bobby fast
eric C3 control Phantom Mercenary steve_zissou elite
eric C3 control Daft Punk maverick flyer
eric C3 control Frank Kafka charlie_kaufman heavy
eric C5 hold Amateur Bandit rocketman elite
eric C5 hold Quiet Wanderer rocketman elite
chris D4 soar Bob Newhart maverick flyer
big_grizz E2 move Amir Dixon lt_dan troop
big_grizz E2 move Juliana Wu lt_dan troop
big_grizz E2 move Mateo Hunt lt_dan troop
big_grizz E2 move Mila Foster lt_dan troop
big_grizz E2 move Vanessa Richards lt_dan troop
chris E5 sneak Ruff Man steve_zissou elite
chris F1 control Alfred Stonier Flores mule transport
chris F1 control David Niven Fuentes mule transport
chris F1 control Vladimir Vapnik Fisher mule transport
chris F1 control Adrian Walker lt_dan troop
chris F1 control Everett Marquez lt_dan troop
chris F1 control Jayden Roman lt_dan troop
chris F1 control Katelyn Malone lt_dan troop
chris F1 control Nova Mullins lt_dan troop
chris F1 control Sadie Mclaughlin lt_dan troop
chris F3 move Samuel Huntington charlie_kaufman heavy
chris F3 move Frederick Forsyth Francis mule transport
chris F3 move Nate Silver Curtis mule transport
chris F3 move Andrew Holland lt_dan troop
chris F3 move Giovanni Hammond lt_dan troop
chris F3 move Jace Ramos lt_dan troop
chris F3 move Kaleb Stephens lt_dan troop
chris F3 move Silas Palmer lt_dan troop
chris F3 move Sophie Mann lt_dan troop
eric F7 move Robert Fisk rambo heavy
eric F7 move Dominique Lapierre Bryant mule transport
eric F7 move V S Naipaul May mule transport
eric F7 move Caleb Rojas lt_dan troop
eric F7 move Ivan Jordan lt_dan troop
eric F7 move Quinn Johnston lt_dan troop

Take a look at what individual players can see. Here’s Chris’ map:

draw_map(res, "chris")

We’re good! Move on to the next turn. (Note: Moby managed to teleport from A1 to E2 aka The Gates of Moria on his first turn.)

TURN 2

Players change their maps (making orders)

move_unit(game, "big_grizz", moby_units[1:5],   "move", "F1")
move_unit(game, "eric",      eric_units[1:6],   "move", "F4")
move_unit(game, "chris",     chris_units[10:18],"move", "F4")
move_unit(game, "chris",     chris_units[19],   "sneak","E7")
move_unit(game, "chris",     chris_units[20],   "soar", "B1")

Attempt to reconcile moves.

res <- reconcile_player_orders(game)
## CONFLICT(s):
## Warning: Conflict is at hand! Please resolve territorial disputes.
print(draw_map(res, "CONFLICT!"))

knitr::kable(res)
player loc action unit_name unit_type force_org
big_grizz F1 move Amir Dixon lt_dan troop
big_grizz F1 move Juliana Wu lt_dan troop
big_grizz F1 move Mateo Hunt lt_dan troop
big_grizz F1 move Mila Foster lt_dan troop
big_grizz F1 move Vanessa Richards lt_dan troop
chris F1 control Alfred Stonier Flores mule transport
chris F1 control David Niven Fuentes mule transport
chris F1 control Vladimir Vapnik Fisher mule transport
chris F1 control Adrian Walker lt_dan troop
chris F1 control Everett Marquez lt_dan troop
chris F1 control Jayden Roman lt_dan troop
chris F1 control Katelyn Malone lt_dan troop
chris F1 control Nova Mullins lt_dan troop
chris F1 control Sadie Mclaughlin lt_dan troop
chris F4 move Samuel Huntington charlie_kaufman heavy
chris F4 move Frederick Forsyth Francis mule transport
chris F4 move Nate Silver Curtis mule transport
chris F4 move Andrew Holland lt_dan troop
chris F4 move Giovanni Hammond lt_dan troop
chris F4 move Jace Ramos lt_dan troop
chris F4 move Kaleb Stephens lt_dan troop
chris F4 move Silas Palmer lt_dan troop
chris F4 move Sophie Mann lt_dan troop
eric F4 move Robert Fisk rambo heavy
eric F4 move Dominique Lapierre Bryant mule transport
eric F4 move V S Naipaul May mule transport
eric F4 move Caleb Rojas lt_dan troop
eric F4 move Ivan Jordan lt_dan troop
eric F4 move Quinn Johnston lt_dan troop

Fights are resolved

This is where the players would resolved fights however they see fit (e.g. Warhammer, chessboxing, what-have-you)

Then they adjust their maps accordingly for the outcome of the conflicts.

move_unit(game, "eric",      eric_units[1:6],   "retreat", "F7")
move_unit(game, "chris",     chris_units[1:9],  "retreat", "F2")

Now we reconcile again.

res <- reconcile_player_orders(game)
## All units resolved.
print(draw_map(res))

knitr::kable(res)
player loc action unit_name unit_type force_org
big_grizz A2 control Insane Beggar steve_zissou elite
big_grizz A2 control Ashley Mendez cptn_steve_hiller_usmc troop
big_grizz A3 hold Respected Artist keyser_soze elite
big_grizz A4 hold Olivia Newton-John maverick flyer
big_grizz A5 hold Ariana Grande maverick flyer
big_grizz A6 control Robert Pirsig Mcdonald mule transport
big_grizz A6 control Anna Larson cptn_steve_hiller_usmc troop
big_grizz A6 control Izabella Thomas lt_dan troop
big_grizz A6 control Jordyn Barnett lt_dan troop
big_grizz A6 control Maxwell Davis lt_dan troop
chris B1 soar Bob Newhart maverick flyer
eric C2 hold Bing Crosby ricky_bobby fast
eric C2 hold Paul Bettany ricky_bobby fast
eric C3 control Phantom Mercenary steve_zissou elite
eric C3 control Daft Punk maverick flyer
eric C3 control Frank Kafka charlie_kaufman heavy
eric C5 hold Amateur Bandit rocketman elite
eric C5 hold Quiet Wanderer rocketman elite
chris E7 sneak Ruff Man steve_zissou elite
big_grizz F1 move Amir Dixon lt_dan troop
big_grizz F1 move Juliana Wu lt_dan troop
big_grizz F1 move Mateo Hunt lt_dan troop
big_grizz F1 move Mila Foster lt_dan troop
big_grizz F1 move Vanessa Richards lt_dan troop
chris F2 retreat Alfred Stonier Flores mule transport
chris F2 retreat David Niven Fuentes mule transport
chris F2 retreat Vladimir Vapnik Fisher mule transport
chris F2 retreat Adrian Walker lt_dan troop
chris F2 retreat Everett Marquez lt_dan troop
chris F2 retreat Jayden Roman lt_dan troop
chris F2 retreat Katelyn Malone lt_dan troop
chris F2 retreat Nova Mullins lt_dan troop
chris F2 retreat Sadie Mclaughlin lt_dan troop
chris F4 move Samuel Huntington charlie_kaufman heavy
chris F4 move Frederick Forsyth Francis mule transport
chris F4 move Nate Silver Curtis mule transport
chris F4 move Andrew Holland lt_dan troop
chris F4 move Giovanni Hammond lt_dan troop
chris F4 move Jace Ramos lt_dan troop
chris F4 move Kaleb Stephens lt_dan troop
chris F4 move Silas Palmer lt_dan troop
chris F4 move Sophie Mann lt_dan troop
eric F7 retreat Robert Fisk rambo heavy
eric F7 retreat Dominique Lapierre Bryant mule transport
eric F7 retreat V S Naipaul May mule transport
eric F7 retreat Caleb Rojas lt_dan troop
eric F7 retreat Ivan Jordan lt_dan troop
eric F7 retreat Quinn Johnston lt_dan troop

We’re good. On to turn 3.

TURN 3

Players change their maps (making orders)

move_unit(game, "big_grizz", moby_units[1:5], "defend", "F1")
move_unit(game, "big_grizz", moby_units[6:7],   "move", "A3")
move_unit(game, "big_grizz", moby_units[11:15], "move", "A7")
move_unit(game, "big_grizz", moby_units[11:15], "move", "A5")
move_unit(game, "eric",      eric_units[1:6], "defend", "F7")
move_unit(game, "eric",      eric_units[7:8],   "move", "C5")
move_unit(game, "eric",      eric_units[11:12], "move", "D2")
move_unit(game, "chris",     chris_units[10:17],"move", "F2")
move_unit(game, "chris",     chris_units[18],   "move", "E5")
move_unit(game, "chris",     chris_units[20],   "soar", "B6")

Attempt to reconcile moves.

res <- reconcile_player_orders(game)
## All units resolved.
print(draw_map(res))

knitr::kable(res)
player loc action unit_name unit_type force_org
big_grizz A3 hold Respected Artist keyser_soze elite
big_grizz A3 move Insane Beggar steve_zissou elite
big_grizz A3 move Ashley Mendez cptn_steve_hiller_usmc troop
big_grizz A4 hold Olivia Newton-John maverick flyer
big_grizz A5 hold Ariana Grande maverick flyer
big_grizz A5 move Robert Pirsig Mcdonald mule transport
big_grizz A5 move Anna Larson cptn_steve_hiller_usmc troop
big_grizz A5 move Izabella Thomas lt_dan troop
big_grizz A5 move Jordyn Barnett lt_dan troop
big_grizz A5 move Maxwell Davis lt_dan troop
chris B6 soar Bob Newhart maverick flyer
eric C3 control Phantom Mercenary steve_zissou elite
eric C3 control Frank Kafka charlie_kaufman heavy
eric C5 hold Quiet Wanderer rocketman elite
eric C5 move Bing Crosby ricky_bobby fast
eric C5 move Paul Bettany ricky_bobby fast
eric D2 move Amateur Bandit rocketman elite
eric D2 move Daft Punk maverick flyer
chris E5 move Samuel Huntington charlie_kaufman heavy
chris E7 sneak Ruff Man steve_zissou elite
big_grizz F1 defend Amir Dixon lt_dan troop
big_grizz F1 defend Juliana Wu lt_dan troop
big_grizz F1 defend Mateo Hunt lt_dan troop
big_grizz F1 defend Mila Foster lt_dan troop
big_grizz F1 defend Vanessa Richards lt_dan troop
chris F2 move Frederick Forsyth Francis mule transport
chris F2 move Nate Silver Curtis mule transport
chris F2 move Andrew Holland lt_dan troop
chris F2 move Giovanni Hammond lt_dan troop
chris F2 move Jace Ramos lt_dan troop
chris F2 move Kaleb Stephens lt_dan troop
chris F2 move Silas Palmer lt_dan troop
chris F2 move Sophie Mann lt_dan troop
chris F2 retreat Alfred Stonier Flores mule transport
chris F2 retreat David Niven Fuentes mule transport
chris F2 retreat Vladimir Vapnik Fisher mule transport
chris F2 retreat Adrian Walker lt_dan troop
chris F2 retreat Everett Marquez lt_dan troop
chris F2 retreat Jayden Roman lt_dan troop
chris F2 retreat Katelyn Malone lt_dan troop
chris F2 retreat Nova Mullins lt_dan troop
chris F2 retreat Sadie Mclaughlin lt_dan troop
eric F7 defend Robert Fisk rambo heavy
eric F7 defend Dominique Lapierre Bryant mule transport
eric F7 defend V S Naipaul May mule transport
eric F7 defend Caleb Rojas lt_dan troop
eric F7 defend Ivan Jordan lt_dan troop
eric F7 defend Quinn Johnston lt_dan troop

Vision

No conflict here, but notice how everyone’s vision changes… [WORK IN PROGRESS]

Grizz

draw_map(res, "big_grizz")

Chris

draw_map(res, "chris")

Eric

draw_map(res, "eric")

TURN 4

Players change their maps (making orders). Renew the attack.

move_unit(game, "big_grizz", moby_units[6:7],   "move", "B1")
move_unit(game, "big_grizz", moby_units[11:15], "move", "B5")
move_unit(game, "eric",      eric_units[7:8],   "move", "F3")
move_unit(game, "eric",      eric_units[11:12], "move", "E3")
move_unit(game, "chris",     chris_units[1:17],"attack","F1")
move_unit(game, "chris",     chris_units[18], "attack", "F7")
move_unit(game, "chris",     chris_units[19],   "sneak","F8")
move_unit(game, "chris",     chris_units[20],   "soar", "C3")

Attempt to reconcile moves.

res <- reconcile_player_orders(game)
## CONFLICT(s):
## Warning: Conflict is at hand! Please resolve territorial disputes.
print(draw_map(res, "CONFLICT!"))

knitr::kable(res)
player loc action unit_name unit_type force_org
chris C3 soar Bob Newhart maverick flyer
eric C3 control Phantom Mercenary steve_zissou elite
eric C3 control Frank Kafka charlie_kaufman heavy
big_grizz F1 defend Amir Dixon lt_dan troop
big_grizz F1 defend Juliana Wu lt_dan troop
big_grizz F1 defend Mateo Hunt lt_dan troop
big_grizz F1 defend Mila Foster lt_dan troop
big_grizz F1 defend Vanessa Richards lt_dan troop
chris F1 attack Alfred Stonier Flores mule transport
chris F1 attack David Niven Fuentes mule transport
chris F1 attack Frederick Forsyth Francis mule transport
chris F1 attack Nate Silver Curtis mule transport
chris F1 attack Vladimir Vapnik Fisher mule transport
chris F1 attack Adrian Walker lt_dan troop
chris F1 attack Andrew Holland lt_dan troop
chris F1 attack Everett Marquez lt_dan troop
chris F1 attack Giovanni Hammond lt_dan troop
chris F1 attack Jace Ramos lt_dan troop
chris F1 attack Jayden Roman lt_dan troop
chris F1 attack Kaleb Stephens lt_dan troop
chris F1 attack Katelyn Malone lt_dan troop
chris F1 attack Nova Mullins lt_dan troop
chris F1 attack Sadie Mclaughlin lt_dan troop
chris F1 attack Silas Palmer lt_dan troop
chris F1 attack Sophie Mann lt_dan troop
chris F7 attack Samuel Huntington charlie_kaufman heavy
eric F7 defend Robert Fisk rambo heavy
eric F7 defend Dominique Lapierre Bryant mule transport
eric F7 defend V S Naipaul May mule transport
eric F7 defend Caleb Rojas lt_dan troop
eric F7 defend Ivan Jordan lt_dan troop
eric F7 defend Quinn Johnston lt_dan troop

Fights are resolved

We fight. Adjust maps accordingly for the outcome of the conflicts.

move_unit(game, "big_grizz", moby_units[1:6], "retreat", "E2")
move_unit(game, "eric",      eric_units[1:6], "retreat", "F8")
move_unit(game, "chris",     chris_units[20], "retreat", "C5")

Now we reconcile again.

res <- reconcile_player_orders(game)
## CONFLICT(s):
## Warning: Conflict is at hand! Please resolve territorial disputes.
print(draw_map(res, "CONFLICT!"))

knitr::kable(res)
player loc action unit_name unit_type force_org
chris C5 retreat Bob Newhart maverick flyer
eric C5 hold Quiet Wanderer rocketman elite
chris F8 sneak Ruff Man steve_zissou elite
eric F8 retreat Robert Fisk rambo heavy
eric F8 retreat Dominique Lapierre Bryant mule transport
eric F8 retreat V S Naipaul May mule transport
eric F8 retreat Caleb Rojas lt_dan troop
eric F8 retreat Ivan Jordan lt_dan troop
eric F8 retreat Quinn Johnston lt_dan troop

Retreats

Here’s a good question: what happens here? A large army retreats into an area where a spy has been hiding. Do they fight? Do they take casualties?

TURN 5

Players change their maps (making orders)…